{
/* Have a 'valid' PFN without a matching MFN - need to alloc */
p2m_batch[nr_mfns++] = pfn;
+ p2m[pfn]--;
}
}
continue;
pfn = (pte >> PAGE_SHIFT) & MFN_MASK_X86;
-
- if ( p2m[pfn] == INVALID_P2M_ENTRY )
+
+ if ( p2m[pfn] == (INVALID_P2M_ENTRY-1) )
p2m[pfn] = p2m_batch[nr_mfns++];
pte &= ~MADDR_MASK_X86;
{
/* Have a live PFN which hasn't had an MFN allocated */
p2m_batch[nr_mfns++] = pfn;
+ p2m[pfn]--;
}
}
region_mfn[i] = ~0UL; /* map will fail but we don't care */
else
{
- if ( p2m[pfn] == INVALID_P2M_ENTRY )
+ if ( p2m[pfn] == (INVALID_P2M_ENTRY-1) )
{
/* We just allocated a new mfn above; update p2m */
p2m[pfn] = p2m_batch[nr_mfns++];